The present invention relates generally to digital-to-analog converters, and more particularly to mismatch-shaping for multi-bit digital-to-analog converters.
A digital-to-analog converter (DAC) outputs analog signals based upon corresponding digital input signals. Two DACs can be used together to form a quadrature DAC. In order to prevent image signals and image noise from corrupting the frequency band in which the quadrature DAC operates, the two component DACs should match closely.
Quadrature DACs are often used in communication systems for converting between low frequency (baseband) signals and high frequency carriers. Specifically, modern communication systems often use high-frequency signals to carry a multitude of signals over a single communication channel. However, both the transmitter and the receiver in such a system typically use low-frequency signal processing to perform the requisite channel filtering and modulation/demodulation. Therefore, the transmitter and receiver typically need to translate between low frequency (baseband) signals and high frequency carriers. For convenience, translation of a high frequency carrier to a low frequency (baseband) signal is often referred to as xe2x80x9cdownconversion,xe2x80x9d while translation of a low frequency (baseband) signal to a high frequency carrier is often referred to as xe2x80x9cupconversion.xe2x80x9d
Upconversion and downconversion typically require an analog mixer, which can be either a single (real or scalar) mixer or a dual (quadrature or vector) mixer. The quadrature DAC provides quadrature analog signals (referred to as xe2x80x9cIxe2x80x9d and xe2x80x9cQxe2x80x9d) to the analog mixer. In the context of a downconversion operation, a scalar mixer must be preceded by a filter, which attenuates undesired signals that would otherwise mix to the desired intermediate frequency (IF), while in an upconversion operation, the output of the mixer must be filtered to eliminate undesired upconversion products. These analog image filters must possess a large amount of attenuation, an attribute that is difficult to achieve at high frequencies. An ideal vector mixer eliminates the need for an image filter by essentially cancelling the image. In practice, this cancellation is imperfect, so a vector mixer""s main advantage is that it simplifies the image filter. Maximizing the degree of cancellation is desirable because it minimizes the power, complexity, and cost of the image filter. Since a monolithic quadrature mixer can have an image rejection ratio (IRR) of approximately 60 dB, the quadrature balance of the mixer""s analog inputs (and hence the quadrature DAC outputs) should be 70 dB or more in order to prevent significant degradation in system performance.
In order for the I and Q signals to have good balance, the full-scales of the two DACs must match very precisely. An imbalance of only 0.1% is sufficient to limit IRR to less than 60 dB. This mismatch problem is akin to the mismatch problem that plagues multi-bit DACs used in multi-bit delta-sigma (xcex94xcexa3) modulators.
The DAC in a multi-bit delta-sigma modulator typically uses an array of unit elements (e.g., resistors, capacitors, current sources) to generate its analog output signals. Variations among the unit elements can cause nonlinearity in the DAC. Therefore, mismatch-shaping is often used in a multi-bit DAC to shape the errors caused by element mismatch in multi-bit modulators.
Mismatch-shaping typically involves a dynamic selection of elements from the element array in the formation of each output sample. In low-frequency DACs, mismatch-shaping essentially ensures that all elements are used equally often, so that errors among the elements average out over time.
The following documents are referenced throughout the specification using the corresponding reference number in brackets, and are hereby incorporated herein by reference in their entireties:
[1] S. A. Jantzi, K. W. Martin and A. S. Sedra, xe2x80x9cQuadrature bandpass xcex94xcexa3 modulation for digital radio,xe2x80x9d IEEE J. Solid-State Circuits, vol. 32, no. 12, pp. 1935-1950, December 1997;
[2] R. Schreier and B. Zhang, xe2x80x9cNoise-shaped multibit D/A convertor employing unit elements,xe2x80x9d Electronics Letters, vol. 31, no. 20, pp. 1712-1713, Sep. 28, 1995;
[3] R. Schreier, xe2x80x9cMismatch-shaping digital-to-analog conversion,xe2x80x9d 103rd Convention of the Audio Engineering Society, preprint no. 4529, Sep. 26-29, 1997;
[4] T. Shui, R. Schreier and F. Hudson, xe2x80x9cMismatch-shaping for a current-mode multi-bit delta-sigma DAC,xe2x80x9d IEEE J. Solid-State Circuits, vol. SC-34, no. 3, pp. 331-338, March 1999;
[5] H. S. Jackson, xe2x80x9cCircuit and method for cancelling nonlinearity error associated with component value mismatches in a data converter,xe2x80x9d U.S. Pat. No. 5,221,926, Jun. 22, 1993;
[6] R. W. Adams and T. W. Kwan, xe2x80x9cData-directed scrambler for multi-bit noise-shaping D/A converters,xe2x80x9d U.S. Pat. No. 5,404,142, Apr. 4, 1995; and
[7] L. E. Franks and I. W. Sandberg, xe2x80x9cAn alternative approach to the realization of network functions: The N-path filter,xe2x80x9d Bell System Technical Journal, 1960, pp. 1321-1350.
In accordance with one aspect of the invention, mismatch-shaping for a multi-bit digital-to-analog converter (DAC) involves allocating elements from an element array to multiple DAC channels. Various state variables are used to keep track of element usage, and the number of state variables is preferably less than the number of elements in the element array. The element array may be treated like a bi-directional circular array, in which case the array elements may be allocated to the two DAC channels as needed in opposite directions with reference to a common anchor point such that the array elements for each channel are contiguous within the circular array. All array elements are available for allocation to both DAC channels, although no array element can be allocated to both DAC channels simultaneously. A collision resolution scheme is used to prevent overlapping allocations of array elements. In one embodiment of the invention, pointers are used to keep track of the array elements allocated to each channel, making implementation relatively simple.
In accordance with another aspect of the invention, a technique for mismatch-shaping for a quadrature digital-to-analog converter (DAC) involves allocating elements of an element array to two DAC channels. The element array is manipulated as a bi-directional circular array, and elements are allocated to the two DAC channels in opposite directions through the bi-directional circular array starting at a common anchor point. Allocating elements of the bi-directional circular array to the two DAC channels in opposite directions through the bi-directional circular array starting at a common anchor point may involve determining a desired allocation for each of the two DAC channels, and may also involve allocating a first desired number of elements to one of the two DAC channels in one direction through the bi-directional circular array starting at the common anchor point and allocating a second desired number of elements to the other of the two DAC channels in the opposite direction through the bi-directional circular array starting at the common anchor point. Additional elements may be allocated to one of the two DAC channels, said additional elements allocated contiguously and in the same direction as elements previously allocated to the DAC channel. Allocating elements of the bi-directional circular array to the two DAC channels in opposite directions through the bi-directional circular array starting at a common anchor point may also involve determining that the desired allocations for the two DAC channels cause contention between the two DAC channels and resolving the contention between the two DAC channels. Resolving the contention between the two DAC channels may involve selecting one of the two DAC channels as a priority channel and providing a preferred allocation to the priority channel. Selecting one of the two DAC channels as a priority channel may involve determining a number of elements allocated to each of the two DAC channels and selecting as the priority channel the DAC channel having the larger number of elements allocated. Providing a preferred allocation to the priority channel may involve allocating at least one element within the desired allocations of the two DAC channels to the priority channel. Resolving the contention between the two DAC channels may involve moving the common anchor point and may also involve reversing the directions for allocating elements to the two DAC channels. Providing a preferred allocation to the priority channel may involve determining that there is a sufficient number of unused array elements for the priority channel, allocating the unused array elements to the priority channel, changing the anchor point, reversing the allocation directions for the two DAC channels, and allocating a desired number of elements to the non-priority channel. Providing a preferred allocation to the priority channel may involve determining that there is an insufficient number of unused elements for the priority channel and that the priority channel will not complete a rotation through the bi-directional circular array if allocated all unused elements, allocating all unused array elements to the priority channel, changing the anchor point, reversing the allocation directions for the two DAC channels, allocating a desired number of elements to the non-priority channel, and allocating an additional number of elements to the priority channel. Providing a preferred allocation to the priority channel may involve determining that there is an insufficient number of unused elements for the priority channel and that the priority channel will complete a rotation through the bi-directional circular array if allocated all unused elements, allocating all unused array elements to the priority channel, changing the anchor point without reversing the allocation directions for the two DAC channels, allocating a desired number of elements to the non-priority channel, and allocating an additional number of elements to the priority channel. Providing a preferred allocation to the priority channel may involve determining that there are no unused elements, determining that at least one DAC channel will complete a rotation through the bi-directional circular array, changing the anchor point without reversing the allocation directions for the two DAC channels, and allocating the desired number of elements to each of the two DAC channels. Allocating elements to the two DAC channels in opposite directions through the bi-directional circular array starting at a common anchor point may involve maintaining an anchor pointer for indicating the anchor point and maintaining a separate pointer for each of the two DAC channels, each pointer indicating the last of a number of contiguous array elements allocated to its respective DAC channel relative to the anchor point in a particular direction through the bi-directional circular array.